<?php namespace Admin\Controller;
//分类默认控制器
class CateController extends CommonController{
	private $model;
	//自定义框架构造方法
	public function __auto(){
		//实例化模型Cate
		$this->model = new \Common\Model\Cate;
	}
	//显示分类列表
	public function index(){
		//获取分类表中的数据并按照csort字段对表数据进行升序排列
		$data=$this->model->orderBy('csort','ASC')->get();	
		if(!$data){
			View::error('当前列表中没有分类，请先添加分类',U('add'));	
		}
		//p($data);
		//变为树状结构，通过pid对表中的数据进行无限极分类
		$data=Data::tree($data,'cname','cid','pid');
		//分配数据
		View::with('data',$data);
		View::make();
	}
	//添加顶级分类
	public function add(){
		if(IS_POST){
			if($this->model->store()){
				//成功添加
				View::success('添加成功',U('index'));
			}
			//错误提示
			View::error($this->model->getError());
		}
		View::make();
	}
	//添加子分类
	public function addSon(){
		if(IS_POST){
			if($this->model->store()){
				View::success('添加成功',U('index'));
			}
			//错误提示
			View::error($this->model->getError());
		}
		//获取get中的cid，给默认值0，并强制转整
		$cid=Q('get.cid',0,'intval');
		//p($cid);
		//查询cid=$cid的数据，并以一维数组的形式输出
		$cate=$this->model->where("cid={$cid}")->find();
		//p($cate);
		View::with('cate',$cate);
	    View::make();
	}
	//分类编辑
	public function edit(){
		if(IS_POST){
			if($this->model->edit()){
				View::success('修改成功',U('index'));
			}
			View::error($this->model->getError());
		}
		//获取旧数据
		$cid=Q('get.cid',0,"intval");
		$oldData = $this->model->where("cid={$cid}")->find();
		//分配数据
		View::with('oldData',$oldData);
		$cateData=Data::tree($this->model->getNoMy($cid),'cname');
		View::with('cateData',$cateData);
	    View::make();
	}
	//执行删除
	public function del(){
		//获取要删除的分类的cid
		$cid = Q('get.cid',0,'intval');
		//判断该分类下是否有文章
		$arcModel=new \Common\Model\Arc;
		//根据cid进行查询
		$arcData=$arcModel->where("category_cid={$cid}")->find();
		if($arcData){//如果该分类下有文章
			View::error('请先删除该分类下的文章！');
		}
		//子分类上移
		//1、查找当前删除分类的父级id->pid
		$pid=$this->model->where("cid={$cid}")->pluck('pid');
		//2、找到当前删除分类下的子分类，把子分类pid修改为获取到的父级pid
		$this->model->where("pid={$cid}")->update(array('pid'=>$pid));
		//3、执行删除
		$this->model->where("cid={$cid}")->delete();
		View::success('删除成功！');
	}
}
 ?>